package com.wendy.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 行政区划代码表
 * </p>
 *
 * @author wendy
 * @since 2021-12-30
 */
@Data
@TableName(value = "region_list")
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "RegionList对象", description = "行政区划代码表")
public class RegionList implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 地区代码
     */
    @Excel(name = "地区代码")
    @TableId(type = IdType.INPUT)
    @ApiModelProperty(value = "地区代码")
    private String areaCode;

    /**
     * 地区名称
     */
    @Excel(name = "地区名称")
    @ApiModelProperty(value = "地区名称")
    private String areaName;

    /**
     * 地区简称
     */
    @Excel(name = "地区简称")
    @ApiModelProperty(value = "地区简称")
    private String areaAbb;

    /**
     * 上级地区代码
     */
    @Excel(name = "上级地区代码")
    @ApiModelProperty(value = "上级地区代码")
    private String parentCode;

    /**
     * 地区省级代码
     */
    @Excel(name = "地区省级代码")
    @ApiModelProperty(value = "地区省级代码")
    private String provinceCode;

    /**
     * 地区省级名称
     */
    @Excel(name = "地区省级名称")
    @ApiModelProperty(value = "地区省级名称")
    private String provinceName;

    /**
     * 地区市级代码
     */
    @Excel(name = "地区市级代码")
    @ApiModelProperty(value = "地区市级代码")
    private String cityCode;

    /**
     * 地区市级名称
     */
    @Excel(name = "地区市级名称")
    @ApiModelProperty(value = "地区市级名称")
    private String cityName;

    /**
     * 地区县级代码
     */
    @Excel(name = "地区县级代码")
    @ApiModelProperty(value = "地区县级代码")
    private String countyCode;

    /**
     * 地区县级名称
     */
    @Excel(name = "地区县级名称")
    @ApiModelProperty(value = "地区县级名称")
    private String countyName;

    /**
     * 地区级别：1：省，2：市，3：区县
     */
    @Excel(name = "地区级别", replace = { "省_1", "市_2", "区县_3" })
    @ApiModelProperty(value = "地区级别")
    private String areaLevel;

    /**
     * 地区编码 保留字段
     */
    @Excel(name = "地区编码")
    @ApiModelProperty(value = "地区编码")
    private String areaEncode;

    /**
     * 有效标志1：有效，0：无效
     */
    @Excel(name = "有效标志", replace = { "有效_1", "无效_0" })
    @ApiModelProperty(value = "有效标志")
    private String isEnable;

    /**
     * 树状下级
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "树状下级")
    private List<RegionList> children;

}
